/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.pedagio.modelo;

import com.pedagio.dominio.ComputadorBordo;
import com.pedagio.dominio.Dispositivo;
import com.pedagio.dominio.SmartCard;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author pedroo
 */
public class DispositvoModelo extends AbstractTableModel {
    
    String[] colunasPC = {"Sequencial","Código - Validade", "Saldo", "Veículo" };
    String[] colunasSmartCard = {"Sequencial","Código - Validade", "Saldo", "Bloqueado" };
    String[] column;
    
    List<Dispositivo> data = new ArrayList<Dispositivo>();
       
    public DispositvoModelo(boolean computadorBordo) {
        
        if(computadorBordo) {
            this.column = colunasPC;
        } else {
            this.column = colunasSmartCard;
        }
    }
     
     
     
       
     @Override  
     public int getColumnCount() {  
         return column.length;  
     }  
   
     @Override  
     public int getRowCount() {  
         return data.size();  
     }  
       
     public String getColumnName(int columnIndex) {  
         return column[columnIndex];  
     }  
   
     @Override  
     public Object getValueAt(int rowIndex, int columnIndex) {  
   
         Dispositivo dispositvo = data.get(rowIndex);  
         
         if(dispositvo instanceof SmartCard) {
             if(columnIndex == 0)
                return dispositvo.getId().toString();
             else if(columnIndex == 1)
                 return dispositvo.toString();
             else if(columnIndex == 2)
                 return dispositvo.getSaldo().toString();
             else if(columnIndex == 3)
                 return dispositvo.isBloqueado() ? "Sim" : "Não";
             else   
                 return null;          
         } else if (dispositvo instanceof ComputadorBordo) {
             ComputadorBordo computadorBordo = (ComputadorBordo) dispositvo;
             if(columnIndex == 0)
                return dispositvo.getId().toString();
             else if(columnIndex == 1)
                 return dispositvo.toString();
             else if(columnIndex == 2)
                 return dispositvo.getSaldo().toString();
             else if(columnIndex == 3)
                 return computadorBordo.getUsuario().getNome();
             else   
                 return null;          
         } else {
             throw new IllegalArgumentException("");
         }

         
           
     }  
       
     public void addRow(Dispositivo veiculo) {  
         data.add( veiculo );  
     }  
       
     public Dispositivo getRow (int rowIndex) {  
         return data.get(rowIndex);  
     }  
    
}
